import { defineStore } from "pinia";

export const useStore=defineStore('mycart',{
    state:()=>{
        //仓库中需要保存的状态信息
        return{
            cart:[]
        }
     },
    getters:{
        //计算仓库数据的中间值
        total(state){
            return state.cart.reduce((total,i)=>total+=i.count*i.price,0)
        },
        count(state){
            return state.cart.reduce((total,i)=>total+=i.count,0)
        }
    },
    actions:{
        //改变仓库状态的方法
        addProduct(v){
            //1.判断购物车中有没有该商品
            //如果找到了，返回数组元素的索引值，否则返回-1
            // let index=this.cart.findIndex(function(item){
            //     return item.id===v.id;
            // });
            let index=this.cart.findIndex(item => item.id===v.id);
            //2.如果没有该商品，该商品数量设置为1，然后添加到购物车
            if(index===-1){
                v.count=1
                this.cart.push(v)
            }else{
                 //3.如果有，商品数量+1
                 this.cart[index].count++
            }
            console.log(this.cart);
            
          
        },
        removeProduct(id){//移除购物车商品
            let index=this.cart.findIndex(item => item.id===id);
            this.cart.splice(index, 1);
        }
    },
    persist:{
        enabled:true,
        strategies:[
            {
                key:'mycart',
                //sessionStorage能够保存到网页关闭为止
                //localStorage永久保存，天荒地老
                storage:localStorage
            }
        ]
    }
})